package cn.historia.domain.activity.service;

import cn.historia.domain.activity.model.valobj.ActivitySkuStockKeyVO;

/**
 * @package: cn.historia.domain.activity.service
 * @className: ISkuStock
 * @author: 云溪
 * @description: 抽奖活动SKU库存服务
 * @date: 2025/9/27 16:45
 * @version: 1.0
 */
public interface IRaffleActivitySkuStockService {

    /**
     * 获取活动sku库存消耗队列
     *
     * @return 奖品库存Key信息
     * @throws InterruptedException 异常
     */
    ActivitySkuStockKeyVO takeQueueValue() throws InterruptedException;

    /**
     * 清空活动sku库存消耗队列
     */
    void clearQueueValue();

    /**
     * 更新活动sku库存
     *
     * @param sku 活动sku
     */
    void updateActivitySkuStock(Long sku);

    /**
     * 清空活动sku库存
     *
     * @param sku 活动sku
     */
    void clearActivitySkuStock(Long sku);


}
